<?php
namespace Reezy\OAuth\Contract;


use Reezy\OAuth\OAuthInfo;

interface OAuthUserIdProviderInterface
{
    /**
     * 授权成功后，获取用户ID，用户不存在时返回0
     *
     * @param string $name
     * @param string $clientId
     * @param OAuthInfo $info
     * @return int
     */
    function find(string $name, string $clientId, OAuthInfo $info): int;

    /**
     * 用户不存在时，获取用户信息，注册新用户，返回其ID
     *
     * @param string $name
     * @param string $clientId
     * @param OAuthInfo $info
     * @return int
     */
    function register(string $name, string $clientId, OAuthInfo $info): int;
}